package com.ruoyi.syf.task.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.syf.domain.RiskCheckTask;
import com.ruoyi.syf.domain.vo.RiskCheckTaskVo;
import com.ruoyi.syf.task.enttity.ScheduleSetting;

import java.util.List;

public interface ScheduleSettingService extends IService<ScheduleSetting> {

    /**
     * 新增排查定时任务
     */
    void addCheckTask(RiskCheckTaskVo vo) throws IllegalAccessException;

    /**
     * 新增排查定时任务
     */
    <T extends RiskCheckTask> void addCheckTask(T vo, boolean status) throws IllegalAccessException;

    /**
     * 修改排查定时任务
     */
    void updateCheckTask(RiskCheckTaskVo riskCheckTaskVo) throws IllegalAccessException;
//
//    /**
//     * 新增实时数据定时任务
//     */
//    boolean addRealTimeDataTask(Integer cycle);
//
//    /**
//     * 修改实时数据定时任务
//     */
//    boolean updateRealTimeDataTask(Integer cycle);

    /**
     * 新增任务
     * @param isChanges 是否启用任务
     */
    boolean add(ScheduleSetting scheduleSetting, boolean isChanges);

    /**
     * 修改任务
     * @param isChanges 是否重新启用任务
     */
    boolean update(ScheduleSetting scheduleSetting,boolean isChanges);

    /**
     * 删除任务
     */
    boolean del(Long id);

    /**
     * 批量删除任务
     */
    boolean delByIds(List<Long> ids);

    /**
     * 停止/启动任务
     * @param id 任务ID
     * @param status 启用状态
     */
    boolean changesStatus(Long id, boolean status);
}
